
import java.util.*;

/**
 * <p>
 * Aplicacao que simula o funcionamento de elevadores em um predio. *** A
 * versao inicial so' e' capaz de manipular um Elevador. ***
 * </p>
 */
public class SimuladorDeElevadores {

  ///////////////////////////////////////
  // attributes


/**
 * <p>
 * Representa o numero de andares do predio enumerados de 1 a numAndares.
 * </p>
 */
    private static final int numAndares = 5; 

/**
 * <p>
 * Representa o numero de elevadores no predio (*** na versao atual apenas
 * um Elevador e' possivel ***).
 * </p>
 */
    private static int numElevadores = 1; 

/**
 * <p>
 * Representa o andar em que os elevadores se encontram ao ser iniciada a
 * aplicacao.
 * </p>
 */
    private static int andarInicial = 1; 

/**
 * <p>
 * Representa o estado da Porta ao ser iniciada a aplicacao.
 * </p>
 */
    private static boolean portaInicialmenteFechada = true; 

   ///////////////////////////////////////
   // associations

/**
 * <p>
 * Representa o controlador do sistema de elevadores.
 * </p>
 */
    public Controlador controlador; 
/**
 * <p>
 * Representa a interface de usuario do sistema de elevadores.
 * </p>
 */
    public InterfaceDeUsuarioSimples interfaceDeUsuarioSimples; 


  ///////////////////////////////////////
  // operations


/**
 * <p>
 * Funcao principal da aplicacao que cria a instancia de Controlador e de
 * InterfaceDeUsuarioSimples. A partir destas duas ultimas sao criadas as
 * demais.
 * </p>
 * 
 * @param args[] - argumentos na linha de comando.
 */
    public static void main(String args[]) {        
        String lingua;
        String pais;
        Locale local;
        ResourceBundle rotulos;
        Controlador controlador;
        InterfaceDeUsuarioSimples interfaceDeUsuario;
        if (args.length != 2) {
            lingua = new String("pt");
            pais = new String("BR");
        } else {
            lingua = new String(args[0]);
            pais = new String(args[1]);
        }
        local = new Locale(lingua, pais);
        rotulos = ResourceBundle.getBundle("Rotulos", local);
        controlador = new Controlador(numAndares, andarInicial, portaInicialmenteFechada);
        interfaceDeUsuario = new InterfaceDeUsuarioSimples(controlador, rotulos, numAndares, numElevadores, andarInicial, portaInicialmenteFechada);
        controlador.registrarInterfaceDeUsuario(interfaceDeUsuario);
    } // end main        

 } // end SimuladorDeElevadores



